package com.simen.downloader.util;

import android.util.Log;

import java.lang.reflect.Field;

public class AppLog {

    public static final String SHOULDPRINTLOGFIELD = "TAG";

    private final static boolean debug = true;

    public static boolean isDebugable() {
//        try {
//            return (MyApp.getContext().getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return false;
        return debug;
    }

    public static void i(Class type, String msg) {
        Field[] fields = type.getFields();
        boolean shouldprintlog = false;
        for (Field item : fields) {
            if (item.getName().equals(SHOULDPRINTLOGFIELD)) {
                //如果指定类中包含TAG变量,则开启日志
                shouldprintlog = true;
                break;
            }
        }
        if (shouldprintlog && (debug && isDebugable())) {
            Log.i("allfree " + type.getCanonicalName(), msg);
        }
    }


    public static void i(String msg) {
        if ((debug && isDebugable()) && msg != null) {
            Log.i("allfree", msg);
        }
    }

    public static void d(String msg) {
        if ((debug && isDebugable()) && msg != null) {
            Log.d("allfree", msg);
        }
    }

    public static void e(String msg) {
        if ((debug && isDebugable()) && msg != null) {
            Log.e("allfree", msg);
        }
    }

    public static void d(String msg, String tag) {
        if ((debug && isDebugable()) && msg != null) {
            Log.d("allfree", tag + " " + msg);
        }
    }

    public static void e(String msg, String tag) {
        if ((debug && isDebugable()) && msg != null) {
            Log.d("allfree", tag + " " + msg);
        }
    }

    public static void iLog(String msg) {
        Log.i("allfree", msg);
    }

    public static void dLog(String msg) {
        Log.d("allfree", msg);
    }

    public static void eLog(String msg) {
        Log.e("allfree", msg);
    }
}
